home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 76 / XENIATGM66.iso / Indiana Jones / Indiana Jones.exe / RESOURCE / PREVIEW.GOB / cog_actor_icemonster.cog < prev    next >
Text File  |  1999-11-15  |  4KB  |  156 lines

  1. # Jones 3D Cog Script
  2. #
  3. # actor_IceMonster.cog
  4. #
  5. # [PKM]
  6. #
  7. # (C) 1999 LucasArts Entertainment Company LLC. All Rights Reserved
  8. #
  9. # ===================================================================
  10.  
  11. symbols
  12.  
  13.     message        created
  14.     message        aievent
  15.     message        damaged
  16.     message        timer
  17.     message        statechange
  18.     message        callback
  19.  
  20. # ************************** TEMPLATES *************************
  21.     keyframe    hop=si_hop.key                    local
  22.  
  23.     template    smoke=+ice_chicken_spr            local # RT: Used by weapon -- don't remove!
  24.  
  25.     template    blast=+ice_spr_exp_blast        local # RT: Used by explosion -- don't remove!
  26.     template    shards=+ice_spr_exp_shards        local # RT: Used by explosion -- don't remove!
  27.     template    cloud=+ice_spr_exp_cloud           local # RT: Used by explosion -- don't remove!
  28.  
  29. # *********************** WEAPON HANDLERS **********************
  30.     vector        standingFireOffset                local
  31.     vector        walkingFireOffset                local   
  32.  
  33. # *********************** MISC LOCAL VARS **********************
  34.     thing        sender                               local
  35.     int            n_eventType                        local
  36.     int            n_param                            local
  37.     int            damageType                        local
  38.  
  39. end
  40.  
  41. # ===================================================================
  42. code
  43.  
  44. # -------------------------------------------------------------------
  45. created:
  46.  
  47.     sender = GetSenderRef();
  48.  
  49.     standingFireOffset = VectorSet(0.0, 0.05, 0.05);
  50.     walkingFireOffset = VectorSet(0.0, 0.025, 0.0025);
  51.     SetThingFireOffset(sender, standingFireOffset);
  52.  
  53.     return;
  54.  
  55.  
  56. # -------------------------------------------------------------------
  57. aievent:
  58.  
  59.     sender = GetSenderRef();
  60.     n_eventType = GetParam(0);
  61.     # newAIMode is GetParam(1)
  62.     # oldAIMode is GetParam(2)
  63.  
  64.     if ( n_eventType == 0x100)    #---- EVENT_MODECHANGED
  65.     {
  66.         if (!BITTEST(GetParam(2), 0x800) && BITTEST(GetParam(1), 0x800))
  67.         {
  68.             # We've entered "flee" mode - set our armed mode accordingly.
  69.             SetThingStateChange(sender, 0, 7);
  70.         }
  71.  
  72.         if (BITTEST(GetParam(2), 0x800) && !BITTEST(GetParam(1), 0x800))
  73.         {
  74.             # We've left "flee" mode - set our armed mode accordingly.
  75.             SetThingStateChange(sender, 0, 0);
  76.         }
  77.     }
  78.     if (n_eventType == 0x10000)    #---- EVENT_PREFIRE
  79.     {
  80.         if (BITTEST(AIGetMode(sender), 0x01))
  81.         {
  82.             # We're now moving.
  83.             SetThingFireOffset(sender, walkingFireOffset);
  84.         }
  85.         else
  86.         {
  87.             # We're now standing.
  88.             SetThingFireOffset(sender, standingFireOffset);
  89.         }
  90.     }
  91.  
  92.     return;
  93.  
  94.  
  95. # -------------------------------------------------------------------
  96. damaged:
  97.  
  98.     sender = GetSenderRef();
  99.     damageType = GetParam(1);
  100.  
  101.        # RT: Don't pay attention to chicken damage....
  102.     if (BITTEST(damageType, 0x80000000))
  103.     {
  104.         ReturnEx(0);
  105.         return;
  106.     }
  107.  
  108.     # Dont Re-flee
  109.     if ( !BITTEST(AIGetMode(sender), 0x800) )
  110.     {
  111.         AIFlee(sender, GetLocalPlayerThing());
  112.         SetThingTimer(sender, Rand() + Rand() + 3.0);
  113.     }
  114.  
  115.     return;
  116.  
  117. # -------------------------------------------------------------------
  118. timer:
  119.  
  120.     sender = GetSenderRef();
  121.     AIStopFlee(sender);
  122.     return;
  123.  
  124. # -------------------------------------------------------------------
  125. statechange:
  126.  
  127.     PlayKey(GetSenderRef(), hop, 3, 0x12, 0);
  128.     return;
  129.  
  130. # -------------------------------------------------------------------
  131. callback:
  132.  
  133.     sender    = GetSenderRef();
  134.     n_param    = GetParam(1);
  135.  
  136.     if (n_param == 21)                                        #---- Left foot down (walk)
  137.     {
  138.         PlaySoundClass(sender, 6);                                # play 'lwalkhard'
  139.     }
  140.     if (n_param == 22)                                        #---- Right foot down (walk)
  141.     {
  142.         PlaySoundClass(sender, 7);                                # play 'rwalkhard'
  143.     }
  144.     if (n_param == 23)                                        #---- Left foot down (run)
  145.     {
  146.         PlaySoundClass(sender, 8);                                # play 'lrunhard'
  147.     }
  148.     if (n_param == 24)                                        #---- Right foot down (run)
  149.     {
  150.         PlaySoundClass(sender, 9);                                # play 'rrunhard'
  151.     }
  152.  
  153.     return;
  154.  
  155. end
  156.